#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QtNetwork>
#include "netcore.h"
#include "scdatathread.h"

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

    void closeEvent(QCloseEvent *);

private:
    void insertLineText(QString text);

private slots:
    void on_pushButton_clicked();

    // 槽函数 - 服务器信息（连接、断开）
    void on_server(int code, QString msg);

    // 槽函数 - 错误信息
    void on_error(int code, QString msg);

    // 槽函数 - 配置信息
    void on_sc_config(int scWidth, int scHeight, int indexX, int indexY, int bit, int fps);

    // 槽函数 - 停止传输桌面数据信号
    void on_sc_sig(int code);

    // 槽函数 - 用来和抓屏线程通信，接收线程信息
    void on_thread_interface(QString msg);

private:
    Ui::MainWindow *ui;

    NetCore * netCore = nullptr;        //网络核心类

    ScDataThread * scDataThread = nullptr;  //抓屏线程

    bool isConnected;       //是否已连接

    int scWidth;            //显示宽度
    int scHeight;           //显示高度
    int indexX;             //x轴分块数量
    int indexY;             //y轴分块数量
    int bit;                //灰度
    int fps;                //刷新率（单位：ms）

};
#endif // MAINWINDOW_H
